/*
 * ventanita.java
 *
 * Created on 14 de junio de 2011, 20:31
 */

package conexion;

import entidades.Animal;
import entidades.TipoCamara;
import entidades.TipoEvento;
import gestores.GestorProduccion;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Iterator;

import javax.swing.JOptionPane;

/**
 *
 * @author  usuario
 */
public class ventanita extends javax.swing.JFrame {
//   public Statement stmt;
    
    /** Creates new form ventanita */
    public ventanita() {
        initComponents();
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ventanita().setVisible(true);
            }
        });
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        btnConectar = new javax.swing.JButton();
        btnInsertar = new javax.swing.JButton();
        txtFecha = new javax.swing.JTextField();
        txtfecha2 = new javax.swing.JTextField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        btnConectar.setText("conectar");
        btnConectar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnConectarActionPerformed(evt);
            }
        });

        btnInsertar.setText("insertar");
        btnInsertar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btnInsertarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(140, 140, 140)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(txtfecha2, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(txtFecha, javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addComponent(btnConectar)
                        .addGap(26, 26, 26)
                        .addComponent(btnInsertar)))
                .addContainerGap(90, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(152, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(btnConectar)
                    .addComponent(btnInsertar))
                .addGap(18, 18, 18)
                .addComponent(txtFecha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(txtfecha2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(61, 61, 61))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents



    private void btnConectarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnConectarActionPerformed

        try{
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String usr = "sa";
            
            String pass = "contraseña";
            Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=pampachin",usr,pass);
            java.sql.Statement st = con.createStatement();
            ResultSet rst =st.executeQuery("SELECT nombre,fecha2 from fecha order by nombre desc");
            while( rst.next()){
            //System.out.println(rst.getString("descripcion"));
            System.out.println(rst.getString("nombre"));
            Date fecha = rst.getDate("fecha2");
            txtFecha.setText(String.valueOf(fecha));
            String fec = String.valueOf(fecha);
            
            String dia = fec.substring(8,10);
            String mes = fec.substring(5, 7);
            String año = fec.substring(0, 4);
            String fechacompleta = dia+"-"+mes+"-"+año;
            txtfecha2.setText(fechacompleta);
            this.insertar(rst.getString("nombre")+"2", fechacompleta);
             //System.out.println(rst.getString(dia));
            }
            st.close();
            con.close();//se cierra la conexion con la base de datos

            }
            catch ( SQLException excepcionSql){ //excepcionSql = puede ponerle otro nombre
            JOptionPane.showMessageDialog( null, excepcionSql.getMessage(),"Error en base de datos", JOptionPane.ERROR_MESSAGE );
}

//errores con la carga del controlador de la base de datos(Driver)

catch ( ClassNotFoundException claseNoEncontrada ){
JOptionPane.showMessageDialog( null, claseNoEncontrada.getMessage(),"No se encontró el controlador", JOptionPane.ERROR_MESSAGE );// TODO add your handling code here:
}
    }//GEN-LAST:event_btnConectarActionPerformed

    private void btnInsertarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnInsertarActionPerformed
       this.metodoNombreAnimalNacido();
        
       
    }//GEN-LAST:event_btnInsertarActionPerformed

    //el metodo funciona, pero devuelve false aunque lo inserte...
//    public void insertarTipoEvento(){
//       TipoEvento tipo = new TipoEvento();
//       tipo.setNombre("evento1");
//       tipo.setDescripcion("primer evento de prueba");
//       boolean ret = new GestorProduccion().metodoInsertaTipoEvento(tipo);
//       if(ret){
//           txtFecha.setText(tipo.getNombre());
//       }
//       else{
//           txtFecha.setText("no quedo =(");}
//    }
//
//    public void traerUnTipoCamara(){
//            int cod = new GestorProduccion().metodoPruebaTipoCmanara("maduracion");
//       txtfecha2.setText(String.valueOf(cod));
//       }
//
//
//
//     public void traerTipoCamaras(){
//            GestorProduccion gp = new GestorProduccion();
//        //System.out.println(gp.getTipoCamara(1).getDescripcion());
//        Iterator iter = gp.allTipoCamaras().iterator();
//        TipoCamara tipo= null;
//        while (iter.hasNext()) {
//            tipo = (TipoCamara) iter.next();
//            System.out.println(tipo.getNombre()+" "+tipo.getDescripcion());
//            //cmbCentro.addItem(centro);
//        }
//        }


/*
 * metodo para insertar de prueba de fechas!
 */
public void insertar(String nombre,String fecha){
    try{
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String usr = "sa";

            String pass = "contraseña";
            Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=prueba2",usr,pass);
            java.sql.Statement st = con.createStatement();
            ResultSet rst =st.executeQuery("insert into fecha (nombre, fecha2) values ('"+ nombre + "','"+fecha+"')");

            st.close();
            con.close();//se cierra la conexion con la base de datos

            }
            catch ( SQLException excepcionSql){ //excepcionSql = puede ponerle otro nombre
            JOptionPane.showMessageDialog( null, excepcionSql.getMessage(),"Error en base de datos", JOptionPane.ERROR_MESSAGE );
}

//errores con la carga del controlador de la base de datos(Driver)

catch ( ClassNotFoundException claseNoEncontrada ){
JOptionPane.showMessageDialog( null, claseNoEncontrada.getMessage(),"No se encontró el controlador", JOptionPane.ERROR_MESSAGE );// TODO add your handling code here:
}
}



/*
 * Metodo de prueba, recibe un nombre por parametro y debe sumarle uno
 */
public void nombre(){
    String nombre=null;
     try{
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            String usr = "sa";

            String pass = "contraseña";
            Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=prueba2",usr,pass);
            java.sql.Statement st = con.createStatement();
            ResultSet rst =st.executeQuery("SELECT nombre,fecha2 from fecha order by nombre desc");
            while( rst.next()){
            nombre = rst.getString("nombre");
            System.out.println(nombre);
            String subnombre = nombre.substring(3);
            System.out.println(subnombre);
            int valor = Integer.parseInt(subnombre);
            System.out.println(valor);
            valor++;
            System.out.println(valor);
            String nuevoNombre = nombre.substring(0, 3);
            System.out.println(nuevoNombre+valor);

             //System.out.println(rst.getString(dia));
            }
            st.close();
            con.close();//se cierra la conexion con la base de datos

            }
            catch ( SQLException excepcionSql){ //excepcionSql = puede ponerle otro nombre
            JOptionPane.showMessageDialog( null, excepcionSql.getMessage(),"Error en base de datos", JOptionPane.ERROR_MESSAGE );
}

//errores con la carga del controlador de la base de datos(Driver)

catch ( ClassNotFoundException claseNoEncontrada ){
JOptionPane.showMessageDialog( null, claseNoEncontrada.getMessage(),"No se encontró el controlador", JOptionPane.ERROR_MESSAGE );// TODO add your handling code here:
}
}

/*
 * Metodo de prueba para asignarle un nuevo nombre, a un nuevo animal.
 * Para esto, se debe hacer:
 * 1-recuperar el ultimo animal registrado en la base y obtener su nombre
 * 2-determinar si el año de ese animal traido de la base se corresponde con el año actual
 * para que el proximo animal utilice la misma letra, caso contrario seria el primer animal d ese año!
 * 3-armar el nombre del animal de acuerdo a los datos obtenidos anteriormente.
 * 4-devolver ese nombre
 */
public String metodoNombreAnimalNacido(){
    String nombreActual = "";
    GestorProduccion gp = new GestorProduccion();
//    String nombreUltimo = gp.getUltimoNacimiento().getNombre();
 //   Date fechaNacimiento = gp.getUltimoNacimiento().getFecha_nacimiento();
    Date fecha = Date.valueOf("12-12-2003");
//    char letra = gp.getLetra(fecha.getYear());
//    char letra = gp.getLetra(2003);
  //  txtFecha.setText(String.valueOf(letra));

    
    return nombreActual;
}




    
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnConectar;
    private javax.swing.JButton btnInsertar;
    private javax.swing.JTextField txtFecha;
    private javax.swing.JTextField txtfecha2;
    // End of variables declaration//GEN-END:variables
    
}
